AWS ParallelCluster で Slurm Accounting の設定方法を解説

AWS ParallelCluster で Slurm Accounting の設定方法を解説

Clock Icon2024.09.20

AWS ParallelCluster で Slurm Accounting を設定すると、ジョブの実行履歴を保存できるようになります。本記事では、AWS ParallelCluster で Slurm Accounting を有効にする方法を解説します。

準備

Slurm Accounting を設定する前に以下の 3 つの準備作業が必要です。

  1. RDS 用のセキュリティグループ作成
  2. RDS の作成
  3. Secrets Manager で RDS のパスワード管理

RDS 用のセキュリティグループ作成

  1. EC2 コンソールからセキュリティグループを新規作成
  2. インバウンドルールで、ヘッドノードのサブネットまたは VPC の CIDR から許可
  3. 後ほど作成したセキュリティグループを RDS インスタンスに割り当てる

セキュリティグループ___EC2___ap-northeast-1

RDS の作成

Slurm Accounting のデータを保存するために、本記事では Amazon RDS for MySQL を使用します。ここでは Slurm Accounting に特有の注意点のみを記載します。

RDS の作成時には以下の点に注意してください。

[重要] セキュリティグループ

事前に作成済みの RDS 用のセキュリティグループを割当てます。

[重要] DB パスワード

ユーザー名パスワードを手動で設定します。

データベースの作成_-_RDS_マネジメントコンソール

https://dev.classmethod.jp/articles/aws-rds-integration-aws-secrets-manager/

DB サブネットグループ

クラスターと同じ VPC 内の適切なサブネットを指定します。

パラメータグループ

新規にパラメータグループを作成します。

RDS 作成後

データベースの詳細_-_RDS_マネジメントコンソール

補足説明

DB 選定については以下のブログを参考にしてください。

https://dev.classmethod.jp/articles/exploring-database-services-for-slurm-accounting/

RDS の基本的な作成手順については以下のブログを参考にしてください。

https://dev.classmethod.jp/articles/lim-rds-mysql/

Secrets Manager の設定

RDS のパスワードを AWS Secrets Manager に保存します。以下の手順に従ってください。

  1. AWS Secrets Manager コンソールを開く
  2. 「新しいシークレットを保存」を選択
  3. シークレットタイプとしてその他のタイプのシークレットを選択
  4. プレーンテキストとして RDS のパスワードを入力
  5. 適切な名前を付けてシークレットを保存

新しいシークレットを保存する___Secrets_Manager___Secrets_Manager___ap-northeast-1

slurmdb2___Secrets_Manager___Secrets_Manager___ap-northeast-1

準備完了です。

ParallelClusterの設定

準備が整ったら、ParallelCluster の設定ファイルに Slurm Accounting の設定を追加します。

設定ファイルの例

config.yaml の例
Scheduling:
  Scheduler: slurm # Slurm を指定
  SlurmSettings:
    ScaledownIdletime: 10
    # --- Slurm Accounting 設定 ---
    Database:
      Uri: slumdb.hogehoge.ap-northeast-1.rds.amazonaws.com:3306 # RDS のエンドポイントとデータベース名とポート番号を指定
      UserName: admin # RDS のユーザー名を指定
      PasswordSecretArn: arn:aws:secretsmanager:ap-northeast-1:123456789012:secret:slurmdb-hoge # Secrets Manager の ARN を指定

クラスター作成(pclsuter create-cluterコマンド実行)後、ヘッドノードが RDS へ正常に接続できれば問題なく必要な設定が入りクラスターが利用可能になります。

動作確認とトラブルシューティング

動作確認

クラスター作成後、ヘッドノードにログインしてsacctコマンドを実行します。正常に設定されていれば下記のような出力が表示されます。

$ sacct
JobID           JobName  Partition    Account  AllocCPUS      State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------

新規クラスターの場合、ジョブ履歴がないため出力は空になります。テストジョブを実行して再確認することをお勧めします。

トラブルシューティング

設定に問題がある場合は、以下の点を確認してください。

  • RDS のセキュリティグループ設定
  • Secrets Manager のパスワード設定
  • ParallelCluster 設定ファイル

詳細なトラブルシューティング手順については、以下の記事を参照してください。

https://dev.classmethod.jp/articles/aws-parallelcluster-slurm-accounting-database-troubleshooting/

まとめ

本記事では、AWS ParallelCluster で Slurm Accounting を設定する方法を解説しました。

おわりに

ParallelCluster が Slurm Accounting を v3.3.0 でサポートしてくれる前は以下の設定が必要でした。だいぶ設定の手間が減りましたね。

https://dev.classmethod.jp/articles/aws-parallelcluster3-with-slurmdb/

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.